$(document).ready(function() {
	permissionPage.init();
});
var permissionPage = {
	listUrl : _webApp + '/system/permission/list',
	saveUrl : _webApp + '/system/permission/save',
	delUrl : _webApp + '/system/permission/delete',
	batchCreadUrl : _webApp + '/system/permission/batchCreateCURD', //批量创建权限
	/**
	 * 初始化
	 */
	init : function() {
		this.initGrid();
		this.initSearch();
	},
	/**
	 * 初始化数据grid
	 */
	initGrid : function() {
		this.dataGrid = $('#data_gird').datagrid({
			url : this.listUrl,
			sortName : "groups",
			sortOrder : "asc",
			idField : "id",
			height : autoHeight(),
			nowrap : true,
			pagination : true,
			rownumbers : true,
			pageSize : 40,
			striped : true,
			autoRowHeight : false,
			singleSelect : true,
			checkOnSelect : false,
			selectOnCheck : false,
			columns : [[{
				checkbox : true
			}, {
				field : 'id',
				title : 'ID',
				sortable : true,
				hidden : true
			}, {
				field : 'name',
				title : '名称',
				sortable : true
			},{
				field : 'groups',
				title : '分组号',
				sortable : true
			},  {
				field : 'permission',
				title : '权限字符',
				sortable : true
			}, {
				field : 'description',
				title : '描述',
				sortable : true
			},  {
				field : 'operate',
				title : '操作',
				width : 100,
				align : 'center',
				formatter : function(value, row, index) {
					var html = '';
					if (p_update) {
						html += '<a class="operate_btn" href="javascript:permissionPage.edit();">编辑</a>';
					}
					if (p_delete) {
						html += '<a class="operate_btn" href="javascript:permissionPage.del();">删除</a>';
					}
					return html;
				}
			}]],
			toolbar : [{
				id : 'add_btn',
				text : '新增',
				iconCls : 'i_add',
				disabled : !p_create,
				handler : function() {
					permissionPage.add();
				}
			}, {
				id : 'batchadd_btn',
				text : '批量创建CURD权限',
				iconCls : 'i_add',
				disabled : !p_create,
				handler : function() {
					permissionPage.batchCread();
				}
			}, {
				id : 'delete_btn',
				text : '删除',
				iconCls : 'i_delete',
				disabled : !p_delete,
				handler : function() {
					permissionPage.dels();
				}
			}]
		});
		$(window).resize(function() {
			permissionPage.dataGrid.datagrid('resize', {
				height : autoHeight(),
			});
		});
	},
	/**
	 * 初始化搜索栏
	 */
	initSearch : function() {
		// 对搜索按钮和单选框绑定点击搜索事件
		$("#search .search_btn,#search input:radio").click(function() {
			permissionPage.search();
		});
		// 对搜索栏输入框绑定回车搜索事件
		$("#search input").keydown(function(event) {
			if (event.keyCode == 13) {
				permissionPage.search();
			}
		});
	},
	/**
	 * 搜索
	 */
	search : function() {
		var searchData = $("#search_form").serializeJson();
		permissionPage.dataGrid.datagrid('load', searchData);
		//清楚所有选中项，防止出现删除后的项目依然存在于选中项中
		this.dataGrid.datagrid("clearChecked");
	},
	/**
	 * 刷新
	 */
	refresh : function() {
		this.dataGrid.datagrid("reload");
		//清楚所有选中项，防止出现删除后的项目依然存在于选中项中
		this.dataGrid.datagrid("clearChecked");
	},
	/**
	 * 新增
	 */
	add : function() {
		$('#permission_dialog form').form('clear');
		$("#permission_dialog form input[name='type'][value=0]").prop("checked", true);
		$("#permission_dialog form input[name='status'][value=1]").prop("checked", true);
		this.editDialog("新增权限");
	},
	/**
	 * 批量新增
	 */
	batchCread : function() {
		$('#permission_batch_dialog form').form('clear');
		this.batchCreadDialog();
	},
	/**
	 * 编辑弹出框
	 */
	batchCreadDialog : function() {
		var $thisDialog = $('#permission_batch_dialog');
		$thisDialog.dialog({
			title : '批量新增权限',
			width : 400,
			modal : true,
			resizable : true,
			buttons : [{
				text : '确定',
				handler : function() {
					permissionPage.ajaxToBatchCread($thisDialog);
				}
			}, {
				text : '取消',
				handler : function() {
					$thisDialog.dialog("close");
				}
			}]
		});
	},
	ajaxToBatchCread : function(dialog) {
		var options = {
			dataType : 'json',
			url : this.batchCreadUrl,
			beforeSubmit : function(arr, $form, options) {
				$form.validate({
					debug : true,
					rules : {
						permission : {
							required : true
						},
						name : {
							required : true
						},
						description : {
							required : false
						}
					}
				});
				$form.submit();
				return $form.valid();
			},
			success : function(data) {
				if (data.result == "success") {
					dialog.dialog("close");
					messagerShow(data.message);
				} else {
					$.messager.alert("结果", data.message);
				}
				permissionPage.refresh();
			}
		};
		$("form", dialog).ajaxSubmit(options);
	},
	/**
	 * 编辑
	 */
	edit : function() {
		var row = this.dataGrid.datagrid('getSelected');
		$('#permission_dialog form').form('load', row);
		this.editDialog("编辑权限");
	},
	/**
	 * 编辑弹出框
	 */
	editDialog : function(title) {
		var $thisDialog = $('#permission_dialog');
		$thisDialog.dialog({
			title : title,
			width : 400,
			modal : true,
			resizable : true,
			buttons : [{
				text : '确定',
				handler : function() {
					permissionPage.ajaxToSave($thisDialog);
				}
			}, {
				text : '取消',
				handler : function() {
					$thisDialog.dialog("close");
				}
			}]
		});
	},
	/**
	 * ajax储存
	 */
	ajaxToSave : function(dialog) {
		var options = {
			url : this.saveUrl,
			beforeSubmit : this.validate, //表单元素有效性验证
			success : function(data) {
				if ( typeof data == 'object') {
					if (data.result == "success") {
						dialog.dialog("close");
						messagerShow(data.message);
					} else {
						$.messager.alert("结果", data.message);
					}
					permissionPage.refresh();
				} else if ( typeof data == 'string') {
					if (data.indexOf("用户权限不足") >= 0) {
						$.messager.alert("警告", "用户权限不足");
					}
				}
			}
		};
		$("form", dialog).ajaxSubmit(options);
	},
	/**
	 *表单元素有效性验证，使用jquery.validate插件
	 */
	validate : function(arr, $form, options) {
		//jquery.validate插件无及时验证方法，只能通过提交触发
		$form.validate({
			debug : true,
			rules : {
				permission : {
					required : true
				},
				name : {
					required : true
				},
				description : {
					required : false
				}
			}
		});
		$form.submit();
		return $form.valid();
	},
	/**
	 * 删除
	 */
	del : function() {
		var row = this.dataGrid.datagrid('getSelected');
		if (row) {
			$.messager.confirm('确认信息？', '确认删除' + row.name, function(r) {
				if (r) {
					var ids = new Array();
					ids.push(row.id);
					permissionPage.ajaxToDelte(ids);
				}
			});
		}

	},
	/**
	 * 批量删除
	 */
	dels : function() {
		var rows = this.dataGrid.datagrid('getChecked');
		if (rows.length) {
			var html = "";
			var ids = new Array();
			for (var i in rows) {
				html += '[<span class="cRed">' + rows[i].name + '</span>]';
				ids.push(rows[i].id);

			}
			$.messager.confirm('确认信息？', '确认删除' + html, function(r) {
				if (r) {
					permissionPage.ajaxToDelte(ids);
				}
			});
		} else {
			$.messager.alert('提示', '请勾选需要删除的数据!');
		}
	},
	/**
	 * ajax删除
	 */
	ajaxToDelte : function(ids) {
		var url = this.delUrl;
		$.post(url, {
			ids : ids
		}, function(data) {
			if ( typeof data == 'object') {
				if (data.result == "success") {
					messagerShow(data.message);
				} else {
					$.messager.alert("结果", data.message);
				}
				permissionPage.refresh();
			} else if ( typeof data == 'string') {
				if (data.indexOf("用户权限不足") >= 0) {
					$.messager.alert("警告", "用户权限不足");
				}
			}
		});
	},
};

